package dominio;

import java.io.Serializable;

import excepcion.StringNumericoTieneLetra;
import excepcion.StringSin8Caracteres;
import excepcion.StringTieneNumero;
import excepcion.StringVacio;

@SuppressWarnings("serial")
public class Persona implements Serializable{
	//ATRIBUTOS
	private String dni;
	private String nombre;
	private String apellido;
	private String email;
	private String telefono;
	
	//CONSTRUCTORES
	
	public Persona(){
		
	}
	
	public Persona(String d, String n, String a, String e)
	{
		dni = d;
		nombre = n;
		apellido = a;
		email = e;
	}

	
	
	//GETTERS & SETTERS
	
	public String getDni() {
		return dni;
	}

	public void setDni(String dni) throws StringVacio, StringNumericoTieneLetra, StringSin8Caracteres{
		if(dni.trim().isEmpty())
			throw new StringVacio();
		
		if(!StringNumericoTieneLetra.isNumeric(dni))
			throw new StringNumericoTieneLetra();
		
		if(dni.length() != 8)
			throw new StringSin8Caracteres();
		
		this.dni = dni;
	}

	public String getNombre() {
		return nombre;
	}

	public void setNombre(String nombre) throws StringVacio, StringNumericoTieneLetra, StringTieneNumero {
		if(nombre.trim().isEmpty())
			throw new StringVacio();
		
		if(StringTieneNumero.isNumeric(nombre))
			throw new StringTieneNumero();
		
		this.nombre = nombre;
	}

	public String getApellido() {
		return apellido;
	}

	public void setApellido(String apellido) throws StringVacio, StringTieneNumero {
		if(apellido.trim().isEmpty())
			throw new StringVacio();
		
		if(StringTieneNumero.isNumeric(apellido))
			throw new StringTieneNumero();
		
		this.apellido = apellido;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getTelefono() {
		return telefono;
	}

	public void setTelefono(String telefono) {
		this.telefono = telefono;
	}

	
}
